Meetup R Nantes
R your ready ?

R you ready ?

Aline Deschamps

10 octobre 2016

you ready ?

1 - Un bref historique

Un bref historique

Pourquoi R ?

Place actuelle de R dans la communauté informatique

The 2016 Top Programming Languages”, by IEEE Spectrum

2 - Une grande diversité grâce aux packages

Le système de packages

La version “base” de R dispose d’un ensemble de fonctions disponibles par défaut, mais celles-ci peuvent être grandement enrichies à l’aide de packages.

Liste des packages “officiels” disponibles sur le CRAN : https://cran.r-project.org/web/packages/available_packages_by_name.html.

Egalement disponible regroupés par thématiques : https://cran.r-project.org/web/views/.

Un nombre grandissant de packages


Source : Lien Github

Le système de packages

Autres sources de packages en dehors du CRAN : Bioconductor, Github (grâce au package “devtools”), …

=> N’importe qui peut donc contribuer à R et développer son propre package, puis en donner l’accès depuis son github ou bien en le soumettant au CRAN.

Thèmes des packages

Nombreux packages = Nombreux formats de données en entrée

Formats de données possibles en entrée dans R (liste non exhaustive) :

Nombreux packages = Nombreuses méthodes disponibles !

Un très grand nombre de méthodes statistiques implémentées et les “dernières” méthodes très rapidement mises à disposition !

+ code des méthodes accessible : compréhension, vérification, modification, …


Anecdote : méthode des “Random Forest” R (2002) vs SAS (2012 !)

3 - Un langage de programmation à part entière

Un langage de programmation à part entière

Eléments de programmation usuels :


=> Possibilités quasi-illimitées et facile à prendre en main si on a déjà des bases de programmation

Exemple de script

# Fonction carré
carre <- function(x) {
  y <- x * x
  return(y)
}

# Création d'un vecteur des carrés de 1 à 10
v <- NULL
for(k in 1:10) {
  
  v[k] <- carre(k)
  
}

moyenne <- mean(v)

# Autres possibilités à la place de la boucle
w <- sapply(1:10, carre)

z <- (1:10)^2

Un langage de programmation à part entière

Eléments spécifiques du langage R :

Un langage de programmation à part entière

Un IDE très puissant : RStudio

RStudio : Un IDE très puissant

Avantages d’utiliser “RStudio” :

4 - Résultats reproductibles

Résultats reproductibles

Avantage R car langage de programmation (vs logiciel “clic-bouton”) :

=> reproductible et partageable

Résultats reproductibles : “rmarkdown”

Les packages “rmarkdown” et “knitr” permettent de générer des rapports automatiques dans divers formats avec comme contenu : du texte, du code et le résultat obtenu en sortie de ce code, le tout écrit en “markdown”.

Formats disponibles :


Ressource : R Markdown Cheat Sheet

Résultats reproductibles : “rmarkdown” exemple

Résultats reproductibles : R Notebooks

R Notebooks : Document écrit en markdown contenant des morceaux de code pouvant être exécutés indépendamment et de manière intéractive, avec les résultats visibles directement au sein du document.


Même principe (pour ceux qui connaissent) que “iPython Notebook” ou “Jupyter Notebook” mais directement intégré dans RStudio.

5 - Graphiques hautement personnalisables

Graphiques : les bases

Nombreux éléments de personnalisation graphique présents “de base” dans R :

=> tout est personnalisable !

Graphiques : les bases

Nombreux types de graphiques possibles :

Graphiques : premiers exemples

Graphiques : le package “ggplot2”

Le package “ggplot2” est LE package graphique de référence en R.

Il fonctionne selon une grammaire bien particulière, qui peut demander un petit temps d’adaptation, mais permet ensuite de réaliser facilement des graphiques très personnalisés.

Graphiques : le package “ggplot2” exemples

Graphiques : autres exemples

Graphiques : autres exemples

Graphiques dynamiques : de nombreux packages

Exemples de packages pour des graphiques dynamiques en R :

Graphiques dynamiques : exemples

Graphiques dynamiques : exemples

Graphiques : ressources utiles

6 - R et le big data

R et le big data : stockage de données

Nombreuses bases de données NoSQL accessibles depuis R :

R et le big data : récupérer des données depuis le web

Nombreux packages permettant connexion à diverses API :

R et le big data : outils “big data”

Nombreux packages pour utiliser techno “big data” avec R :

R et le big data : nombreuses méthodes/algorithmes disponibles

Liste non exhaustive de packages pour la “data science” et le “machine learning” :

R et le big data : exemples

Exemples d’utilisations de R pour des projets “big data”/“data science” :


R et le big data : exemples

R et le big data : exemples


R et le big data : exemples

7 - R pour le web

R pour le web : le package “shiny”

Le package “shiny” (et tous ses descendants : “shinydashboard”, “shinyjs”, …)

=> permet de générer une page web dynamique, ie. HTML, CSS et JavaScript en codant uniquement en R !

Le package “shiny” : exemple 1

Une application “shiny” simple : Exemple 1

Le package “shiny” : principe

Deux fichiers “ui.R” et “server.R” :

Le package “shiny” : principe

shinyUI(fluidPage(
 
  titlePanel("Hello World!"),
 
  # Sidebar with a slider input 
  # for the number of bins
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins", "Number of bins:",
                  min = 5, max = 50, value = 30)
    ),
 
    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("distPlot")
    )
  )
))
shinyServer(function(input, output) {
 
  output$distPlot <- renderPlot({
    x    <- faithful[, 2] 
    bins <- seq(min(x), max(x), 
                length.out = input$bins + 1)
 
    # draw the histogram 
    # with the specified number of bins
    hist(x, breaks = bins, 
         col = 'skyblue', border = 'white')
  })
})

Le package “shiny” : exemple 2

Une application “shinydashboard” plus complexe : Exemple 2

Le package “shiny” : ressources

Divers exemples :

8 - Une grande communauté

Une grande communauté : en ligne

Une grande communauté : IRL (en France)

MERCI !!!

Des questions ?